package cn.wolfcode.trip.base.domain;

import cn.wolfcode.trip.base.util.JSONUtil;
import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

/**
 * 地区实体
 */
@Getter
@Setter
public class Region {
    private static final Integer STATE_NORMAL = 0;//表示正常状态,默认情况下
    private static final Integer STATE_HOT = 1;//表示推荐状态

    private Long id;

    private String name;//地区名称

    private Region parent;//如果想获取更多上级地区信息,使用对象

    private Integer state = STATE_NORMAL; //地区状态


    //为了使用treeView组件,拼装数据用
    public Map<String, Object> toMap() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("text", name);
        map.put("id", id);
        map.put("parent", parent);
        //lazyLoad --> +
        map.put("lazyLoad", true);
        if (state == STATE_HOT) {
            map.put("tags", new Object[]{"推荐"});
        }
        map.put("jsonString", toJsonString());
        return map;
    }

    //编辑地区需要回显数据
    public String toJsonString() {
        Map<String, Object> map = new HashMap<String, Object>();
        //上级地区
        if (parent != null) {
            map.put("parentName", this.getParent().getName());
            map.put("parentId", this.getParent().getId());
        }
        map.put("id", id);
        map.put("state", state);
        map.put("name", name);
        return JSONUtil.toJsonString(map);
    }
}